Wildfire · Burn Severity Mapping
dNBR – delta Normalized Burn Ratio
dNBR maps burn severity by comparing the Normalized Burn Ratio (NBR) before and after a fire event.
It is one of the most widely used indices for wildfire impact assessment.
1. Scientific Definition
The Normalized Burn Ratio (NBR) uses NIR and SWIR2 to emphasize burnt areas:
NBR = (NIR − SWIR2) / (NIR + SWIR2)
The dNBR (delta NBR) is the difference between pre-fire and post-fire NBR:
dNBR = NBRpre − NBRpost
Interpretation (Typical USGS Classes)
< 0.1 → unburned / no change
0.1 – 0.27 → low severity
0.27 – 0.44 → moderate-low
0.44 – 0.66 → moderate-high
> 0.66 → high burn severity
Applications
Wildfire damage and burn severity mapping
Post-fire recovery monitoring
Fuel and vegetation change assessment
2. Required Bands
Sentinel-2
Landsat 8/9
Suggested Palette (dNBR)
[
"#00441b", "#1a9850", "#ffffbf",
"#fdae61", "#d73027", "#7f0000"
]
3. Google Earth Engine Code – dNBR (pre/post fire)
Copy Code
// dNBR – delta Normalized Burn Ratio
// NBR = (NIR - SWIR2) / (NIR + SWIR2)
// dNBR = NBR_pre - NBR_post
// AOI
var roi = geometry;
Map.centerObject(roi, 10);
// --------------------------
// 1. Define pre- and post-fire periods
// (Change dates according to your fire event)
// --------------------------
var preStart = "2023-05-01";
var preEnd = "2023-06-15";
var postStart = "2023-06-16";
var postEnd = "2023-08-01";
// --------------------------
// 2. Load Sentinel-2 SR
// --------------------------
var s2 = ee.ImageCollection("COPERNICUS/S2_SR")
.filterBounds(roi)
.filter(ee.Filter.lt("CLOUDY_PIXEL_PERCENTAGE", 30))
.select(["B8","B12"]); // NIR, SWIR2
var preCol = s2.filterDate(preStart, preEnd);
var postCol = s2.filterDate(postStart, postEnd);
var preImg = preCol.median().clip(roi);
var postImg = postCol.median().clip(roi);
// --------------------------
// 3. Compute NBR for pre and post
// --------------------------
function computeNBR(image){
return image.normalizedDifference(["B8","B12"]).rename("NBR");
}
var nbrPre = computeNBR(preImg).rename("NBR_pre");
var nbrPost = computeNBR(postImg).rename("NBR_post");
// --------------------------
// 4. Compute dNBR = NBR_pre - NBR_post
// --------------------------
var dnbr = nbrPre.subtract(nbrPost).rename("dNBR");
// --------------------------
// 5. Visualization
// --------------------------
var vis = {
min: -0.5,
max: 1.0,
palette: [
"#00441b", // unburned / regrowth
"#1a9850",
"#ffffbf", // low
"#fdae61", // moderate
"#d73027", // high
"#7f0000" // very high severity
]
};
Map.addLayer(dnbr, vis, "dNBR (Burn Severity)");
// Optional: mask only burned areas (e.g. dNBR > 0.1)
var burned = dnbr.gt(0.1).selfMask();
Map.addLayer(burned, {palette:["#d73027"]}, "Burned Area (dNBR > 0.1)", false);
// --------------------------
// 6. Export dNBR
// --------------------------
Export.image.toDrive({
image: dnbr,
description: "dNBR_export",
fileNamePrefix: "dNBR_pre_" + preStart + "_post_" + postStart,
region: roi,
scale: 20,
crs: "EPSG:4326",
maxPixels: 1e13
});
dNBR – delta Normalized Burn Ratio · Start4IT Wildfire Indices Library